import java.util.*;

/**
 * @author tmh
 * @date 2024/10/8 17:16
 * @description
 */
public class T347前K个高频元素 {
    public int[] topKFrequent(int[] nums, int k) {
        //这里使用优先级队列的大根堆来处理
        Map<Integer,Integer> map = new HashMap<>();
        Queue<Integer> queue= new PriorityQueue<>((a, b)->map.get(b)-map.get(a));
        Arrays.stream(nums).forEach(num->map.put(num,map.getOrDefault(num,0)+1));
        map.keySet().stream().forEach(queue::add);
        int[] result = new int[k];
        for (int i =0;i<queue.size();i++){
            result[i]=queue.poll();
        }
        return result;
    }
}
